home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / contrib / phy-bstyles / cpc.bst < prev    next >
Text File  |  1992-06-14  |  19KB  |  1,037 lines

  1. %% #define CPC 1        % Thu Jun 14 13:25:20 1990
  2. %% #include "TEX$ROOT:[BIBTEX]PHYSICS.BTX"
  3.     % Please notify Charles Karney (Karney@Princeton.EDU)
  4.     % of any bugs, improvements, etc.
  5.  
  6.     % For Computer Physics Communications
  7.  
  8.     % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.
  9.     % Copyright (C) 1985, all rights reserved.
  10.     % Copying of this file is authorized only if either
  11.     % (1) you make absolutely no changes to your copy, including name, or
  12.     % (2) if you do make changes, you name it something other than
  13.     % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  14.     % This restriction helps ensure that all standard styles are identical.
  15.     % The file btxbst.doc has the documentation for this style.
  16.  
  17. ENTRY
  18.   { address
  19.     author
  20.     booktitle
  21.     chapter
  22.     edition
  23.     editor
  24.     howpublished
  25.     institution
  26.     journal
  27.     key
  28.     month
  29.     note
  30.     number
  31.     organization
  32.     pages
  33.     publisher
  34.     school
  35.     series
  36.     title
  37.     type
  38.     volume
  39.     year
  40.   }
  41.   {}
  42.   { label }
  43.  
  44. INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  45.  
  46. FUNCTION {init.state.consts}
  47. { #0 'before.all :=
  48.   #1 'mid.sentence :=
  49.   #2 'after.sentence :=
  50.   #3 'after.block :=
  51. }
  52.  
  53. STRINGS { s t }
  54.  
  55. FUNCTION {output.nonnull}
  56. { 's :=
  57.   output.state mid.sentence =
  58.     { ", " * write$ }
  59.     { output.state after.block =
  60.     { "," * write$
  61.       newline$
  62.       "\newblock " write$
  63.     }
  64.     { output.state before.all =
  65.         'write$
  66.         { add.period$ " " * write$ }
  67.       if$
  68.     }
  69.       if$
  70.       mid.sentence 'output.state :=
  71.     }
  72.   if$
  73.   s
  74. }
  75.  
  76. FUNCTION {output}
  77. { duplicate$ empty$
  78.     'pop$
  79.     'output.nonnull
  80.   if$
  81. }
  82.  
  83. FUNCTION {output.check}
  84. { 't :=
  85.   duplicate$ empty$
  86.     { pop$ "empty " t * " in " * cite$ * warning$ }
  87.     'output.nonnull
  88.   if$
  89. }
  90.  
  91. FUNCTION {output.bibitem}
  92. { newline$
  93.   "\bibitem{" write$
  94.   cite$ write$
  95.   "}" write$
  96.   newline$
  97.   ""
  98.   before.all 'output.state :=
  99. }
  100.  
  101. FUNCTION {fin.entry}
  102. { add.period$
  103.   write$
  104.   newline$
  105. }
  106.  
  107. FUNCTION {new.block}
  108. { output.state before.all =
  109.     'skip$
  110.     { after.block 'output.state := }
  111.   if$
  112. }
  113.  
  114. FUNCTION {new.sentence}
  115. { skip$
  116. }
  117.  
  118. FUNCTION {not}
  119. {   { #0 }
  120.     { #1 }
  121.   if$
  122. }
  123.  
  124. FUNCTION {and}
  125. {   'skip$
  126.     { pop$ #0 }
  127.   if$
  128. }
  129.  
  130. FUNCTION {or}
  131. {   { pop$ #1 }
  132.     'skip$
  133.   if$
  134. }
  135.  
  136. FUNCTION {new.block.checka}
  137. { empty$
  138.     'skip$
  139.     'new.block
  140.   if$
  141. }
  142.  
  143. FUNCTION {new.block.checkb}
  144. { empty$
  145.   swap$ empty$
  146.   and
  147.     'skip$
  148.     'new.block
  149.   if$
  150. }
  151.  
  152. FUNCTION {new.sentence.checka}
  153. { empty$
  154.     'skip$
  155.     'new.sentence
  156.   if$
  157. }
  158.  
  159. FUNCTION {new.sentence.checkb}
  160. { empty$
  161.   swap$ empty$
  162.   and
  163.     'skip$
  164.     'new.sentence
  165.   if$
  166. }
  167.  
  168. FUNCTION {field.or.null}
  169. { duplicate$ empty$
  170.     { pop$ "" }
  171.     'skip$
  172.   if$
  173. }
  174.  
  175. FUNCTION {emphasize}
  176. { duplicate$ empty$
  177.     { pop$ "" }
  178.     { "{\em " swap$ * "}" * }
  179.   if$
  180. }
  181.  
  182. FUNCTION {embolden}
  183. { duplicate$ empty$
  184.     { pop$ "" }
  185.     { "{\bf " swap$ * "}" * }
  186.   if$
  187. }
  188.  
  189. FUNCTION {paren}
  190. { duplicate$ empty$
  191.     { pop$ "" }
  192.     { "(" swap$ * ")" * }
  193.   if$
  194. }
  195.  
  196. INTEGERS { nameptr namesleft numnames }
  197.  
  198. INTEGERS { etal }
  199.  
  200. FUNCTION {format.names}
  201. { 's :=
  202.   #1 'nameptr :=
  203.   s num.names$ 'numnames :=
  204.   numnames #5 >
  205.   s numnames "{ll}" format.name$ "others" = numnames #1 > and
  206.   or 'etal :=
  207.   etal
  208.     { #1 #1 + 'namesleft := }
  209.     { numnames 'namesleft := }
  210.   if$
  211.     { namesleft #0 > }
  212.     { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=   % last name first
  213.       nameptr #1 >
  214.     { namesleft #1 >
  215.         { ", " * t * }
  216.         { nameptr #2 >
  217.         { "," * }
  218.         'skip$
  219.           if$
  220.           t "others" =
  221.           etal or
  222.         { " et~al." * }
  223.         { " and " * t * }
  224.           if$
  225.         }
  226.       if$
  227.     }
  228.     't
  229.       if$
  230.       nameptr #1 + 'nameptr :=
  231.       namesleft #1 - 'namesleft :=
  232.     }
  233.   while$
  234. }
  235.  
  236. FUNCTION {format.authors}
  237. { author empty$
  238.     { "" }
  239.     { author format.names }
  240.   if$
  241. }
  242.  
  243. FUNCTION {format.editors}
  244. { editor empty$
  245.     { "" }
  246.     { editor format.names
  247.       editor num.names$ #1 >
  248.     { ", editors" * }
  249.     { ", editor" * }
  250.       if$
  251.     }
  252.   if$
  253. }
  254.  
  255. FUNCTION {format.edited}
  256. { editor empty$
  257.     { "" }
  258.     { "edited by " editor format.names * }
  259.   if$
  260. }
  261.  
  262. FUNCTION {format.title}
  263. { title empty$
  264.     { "" }
  265.     { title "t" change.case$ }
  266.   if$
  267. }
  268.  
  269. FUNCTION {n.dashify}
  270. { 't :=
  271.   ""
  272.     { t empty$ not }
  273.     { t #1 #1 substring$ "-" =
  274.     { t #1 #2 substring$ "--" = not
  275.         { "--" *
  276.           t #2 global.max$ substring$ 't :=
  277.         }
  278.         {   { t #1 #1 substring$ "-" = }
  279.         { "-" *
  280.           t #2 global.max$ substring$ 't :=
  281.         }
  282.           while$
  283.         }
  284.       if$
  285.     }
  286.     { t #1 #1 substring$ *
  287.       t #2 global.max$ substring$ 't :=
  288.     }
  289.       if$
  290.     }
  291.   while$
  292. }
  293.  
  294. FUNCTION {first.page}
  295. { 't :=
  296.   ""
  297.     {  t empty$ not t #1 #1 substring$ "-" = not and }
  298.     { t #1 #1 substring$ *
  299.       t #2 global.max$ substring$ 't :=
  300.     }
  301.   while$
  302. }
  303.  
  304. FUNCTION {format.date}
  305. { year empty$
  306.     { "" }
  307.     'year
  308.   if$
  309. }
  310.  
  311. FUNCTION {format.btitle}
  312. { title emphasize
  313. }
  314.  
  315. FUNCTION {tie.or.space.connect}
  316. { duplicate$ text.length$ #3 <
  317.     { "~" }
  318.     { " " }
  319.   if$
  320.   swap$ * *
  321. }
  322.  
  323. FUNCTION {either.or.check}
  324. { empty$
  325.     'pop$
  326.     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  327.   if$
  328. }
  329.  
  330. FUNCTION {format.bvolume}
  331. { volume empty$
  332.     { "" }
  333.     { "volume" volume tie.or.space.connect
  334.       series empty$
  335.     'skip$
  336.     { " of " * series emphasize * }
  337.       if$
  338.       "volume and number" number either.or.check
  339.     }
  340.   if$
  341. }
  342.  
  343. FUNCTION {format.number.series}
  344. { volume empty$
  345.     { number empty$
  346.     { series field.or.null }
  347.     { output.state mid.sentence =
  348.         { "number" }
  349.         { "Number" }
  350.       if$
  351.       number tie.or.space.connect
  352.       series empty$
  353.         { "there's a number but no series in " cite$ * warning$ }
  354.         { " in " * series * }
  355.       if$
  356.     }
  357.       if$
  358.     }
  359.     { "" }
  360.   if$
  361. }
  362.  
  363. FUNCTION {format.edition}
  364. { edition empty$
  365.     { "" }
  366.     { output.state mid.sentence =
  367.     { edition "l" change.case$ " edition" * }
  368.     { edition "t" change.case$ " edition" * }
  369.       if$
  370.     }
  371.   if$
  372. }
  373.  
  374. INTEGERS { multiresult }
  375.  
  376. FUNCTION {multi.page.check}
  377. { 't :=
  378.   #0 'multiresult :=
  379.     { multiresult not
  380.       t empty$ not
  381.       and
  382.     }
  383.     { t #1 #1 substring$
  384.       duplicate$ "-" =
  385.       swap$ duplicate$ "," =
  386.       swap$ "+" =
  387.       or or
  388.     { #1 'multiresult := }
  389.     { t #2 global.max$ substring$ 't := }
  390.       if$
  391.     }
  392.   while$
  393.   multiresult
  394. }
  395.  
  396. FUNCTION {format.pages}
  397. { pages empty$
  398.     { "" }
  399.     { pages multi.page.check
  400.     { "pages" pages n.dashify tie.or.space.connect }
  401.     { "page" pages tie.or.space.connect }
  402.       if$
  403.     }
  404.   if$
  405. }
  406.  
  407. FUNCTION {format.pages.a}
  408. { pages empty$
  409.     { "" }
  410.     { "page" pages first.page tie.or.space.connect }
  411.   if$
  412. }
  413.  
  414. FUNCTION {format.vol.num.pages}
  415. { volume field.or.null embolden
  416.   " " swap$ * *
  417.   format.date empty$
  418.     'skip$
  419.     { duplicate$ empty$
  420.     { pop$ format.date paren }
  421.         { " " * format.date paren * }
  422.       if$
  423.     }
  424.   if$
  425.   pages empty$
  426.     'skip$
  427.     { duplicate$ empty$
  428.     { pop$ format.pages.a }
  429.     { " " * pages first.page *}
  430.       if$
  431.     }
  432.   if$
  433. }
  434.  
  435. FUNCTION {format.chapter.pages}
  436. { chapter empty$
  437.     'format.pages
  438.     { type empty$
  439.     { "chapter" }
  440.     { type "l" change.case$ }
  441.       if$
  442.       chapter tie.or.space.connect
  443.       pages empty$
  444.     'skip$
  445.     { ", " * format.pages * }
  446.       if$
  447.     }
  448.   if$
  449. }
  450.  
  451. FUNCTION {format.in.ed.booktitle}
  452. { booktitle empty$
  453.     { "" }
  454.     { editor empty$
  455.     { "in " booktitle emphasize * }
  456.     { "in " booktitle emphasize * ", " * format.edited * }
  457.       if$
  458.     }
  459.   if$
  460. }
  461.  
  462. FUNCTION {empty.misc.check}
  463. { author empty$ title empty$ howpublished empty$
  464.   month empty$ year empty$ note empty$
  465.   and and and and and
  466.     { "all relevant fields are empty in " cite$ * warning$ }
  467.     'skip$
  468.   if$
  469. }
  470.  
  471. FUNCTION {format.thesis.type}
  472. { type empty$
  473.     'skip$
  474.     { pop$
  475.       type "t" change.case$
  476.     }
  477.   if$
  478. }
  479.  
  480. FUNCTION {format.tr.number}
  481. { type empty$
  482.     { "Technical Report" }
  483.     'type
  484.   if$
  485.   number empty$
  486.     { "t" change.case$ }
  487.     { number tie.or.space.connect }
  488.   if$
  489. }
  490.  
  491. FUNCTION {format.article.crossref}
  492. { key empty$
  493.     { journal empty$
  494.     { "need key or journal for " cite$ * " to crossref " * crossref *
  495.       warning$
  496.       ""
  497.     }
  498.     { "In " journal * }
  499.       if$
  500.     }
  501.     { "In " key * }
  502.   if$
  503.   " \cite{" * crossref * "}" *
  504. }
  505.  
  506. FUNCTION {format.crossref.editor}
  507. { editor #1 "{vv~}{ll}" format.name$
  508.   editor num.names$ duplicate$
  509.   #2 >
  510.     { pop$ " et~al." * }
  511.     { #2 <
  512.     'skip$
  513.     { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  514.         { " et~al." * }
  515.         { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  516.       if$
  517.     }
  518.       if$
  519.     }
  520.   if$
  521. }
  522.  
  523. FUNCTION {format.book.crossref}
  524. { volume empty$
  525.     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  526.       "In "
  527.     }
  528.     { "Volume" volume tie.or.space.connect
  529.       " of " *
  530.     }
  531.   if$
  532.   editor empty$
  533.   editor field.or.null author field.or.null =
  534.   or
  535.     { key empty$
  536.     { series empty$
  537.         { "need editor, key, or series for " cite$ * " to crossref " *
  538.           crossref * warning$
  539.           "" *
  540.         }
  541.         { "{\em " * series * "\/}" * }
  542.       if$
  543.     }
  544.     { key * }
  545.       if$
  546.     }
  547.     { format.crossref.editor * }
  548.   if$
  549.   " \cite{" * crossref * "}" *
  550. }
  551.  
  552. FUNCTION {format.incoll.inproc.crossref}
  553. { editor empty$
  554.   editor field.or.null author field.or.null =
  555.   or
  556.     { key empty$
  557.     { booktitle empty$
  558.         { "need editor, key, or booktitle for " cite$ * " to crossref " *
  559.           crossref * warning$
  560.           ""
  561.         }
  562.         { "In {\em " booktitle * "\/}" * }
  563.       if$
  564.     }
  565.     { "In " key * }
  566.       if$
  567.     }
  568.     { "In " format.crossref.editor * }
  569.   if$
  570.   " \cite{" * crossref * "}" *
  571. }
  572.  
  573. FUNCTION {article}
  574. { output.bibitem
  575.   format.authors "author" output.check
  576.   new.block
  577.   crossref missing$
  578.     { journal field.or.null
  579.       format.vol.num.pages output
  580.     }
  581.     { format.article.crossref output.nonnull
  582.       format.pages output
  583.     }
  584.   if$
  585.   new.block
  586.   note output
  587.   fin.entry
  588. }
  589.  
  590. FUNCTION {book}
  591. { output.bibitem
  592.   author empty$
  593.     { format.editors "author and editor" output.check }
  594.     { format.authors output.nonnull
  595.       crossref missing$
  596.     { "author and editor" editor either.or.check }
  597.     'skip$
  598.       if$
  599.     }
  600.   if$
  601.   new.block
  602.   format.btitle "title" output.check
  603.   crossref missing$
  604.     { format.bvolume output
  605.       new.block
  606.       format.number.series output
  607.       new.sentence
  608.       publisher "publisher" output.check
  609.       address output
  610.     }
  611.     { new.block
  612.       format.book.crossref output.nonnull
  613.     }
  614.   if$
  615.   format.edition output
  616.   format.date "year" output.check
  617.   new.block
  618.   note output
  619.   fin.entry
  620. }
  621.  
  622. FUNCTION {booklet}
  623. { output.bibitem
  624.   format.authors output
  625.   new.block
  626.   format.title "title" output.check
  627.   howpublished address new.block.checkb
  628.   howpublished output
  629.   address output
  630.   format.date output
  631.   new.block
  632.   note output
  633.   fin.entry
  634. }
  635.  
  636. FUNCTION {inbook}
  637. { output.bibitem
  638.   author empty$
  639.     { format.editors "author and editor" output.check }
  640.     { format.authors output.nonnull
  641.       crossref missing$
  642.     { "author and editor" editor either.or.check }
  643.     'skip$
  644.       if$
  645.     }
  646.   if$
  647.   new.block
  648.   format.btitle "title" output.check
  649.   crossref missing$
  650.     { format.bvolume output
  651.       format.chapter.pages "chapter and pages" output.check
  652.       new.block
  653.       format.number.series output
  654.       new.sentence
  655.       publisher "publisher" output.check
  656.       address output
  657.     }
  658.     { format.chapter.pages "chapter and pages" output.check
  659.       new.block
  660.       format.book.crossref output.nonnull
  661.     }
  662.   if$
  663.   format.edition output
  664.   format.date "year" output.check
  665.   new.block
  666.   note output
  667.   fin.entry
  668. }
  669.  
  670. FUNCTION {incollection}
  671. { output.bibitem
  672.   format.authors "author" output.check
  673.   new.block
  674.   format.title "title" output.check
  675.   new.block
  676.   crossref missing$
  677.     { format.in.ed.booktitle "booktitle" output.check
  678.       format.bvolume output
  679.       format.number.series output
  680.       format.chapter.pages output
  681.       new.sentence
  682.       publisher "publisher" output.check
  683.       address output
  684.       format.edition output
  685.       format.date "year" output.check
  686.     }
  687.     { format.incoll.inproc.crossref output.nonnull
  688.       format.chapter.pages output
  689.     }
  690.   if$
  691.   new.block
  692.   note output
  693.   fin.entry
  694. }
  695.  
  696. FUNCTION {inproceedings}
  697. { output.bibitem
  698.   format.authors "author" output.check
  699.   new.block
  700.   format.title "title" output.check
  701.   new.block
  702.   crossref missing$
  703.     { format.in.ed.booktitle "booktitle" output.check
  704.       format.bvolume output
  705.       format.number.series output
  706.       format.pages output
  707.       address empty$
  708.     { organization publisher new.sentence.checkb
  709.       organization output
  710.       publisher output
  711.       format.date "year" output.check
  712.     }
  713.     { address output.nonnull
  714.       format.date "year" output.check
  715.       new.sentence
  716.       organization output
  717.       publisher output
  718.     }
  719.       if$
  720.     }
  721.     { format.incoll.inproc.crossref output.nonnull
  722.       format.pages output
  723.     }
  724.   if$
  725.   new.block
  726.   note output
  727.   fin.entry
  728. }
  729.  
  730. FUNCTION {conference} { inproceedings }
  731.  
  732. FUNCTION {manual}
  733. { output.bibitem
  734.   author empty$
  735.     { organization empty$
  736.     'skip$
  737.     { organization output.nonnull
  738.       address output
  739.     }
  740.       if$
  741.     }
  742.     { format.authors output.nonnull }
  743.   if$
  744.   new.block
  745.   format.btitle "title" output.check
  746.   author empty$
  747.     { organization empty$
  748.     { address new.block.checka
  749.       address output
  750.     }
  751.     'skip$
  752.       if$
  753.     }
  754.     { organization address new.block.checkb
  755.       organization output
  756.       address output
  757.     }
  758.   if$
  759.   format.edition output
  760.   format.date output
  761.   new.block
  762.   note output
  763.   fin.entry
  764. }
  765.  
  766. FUNCTION {mastersthesis}
  767. { output.bibitem
  768.   format.authors "author" output.check
  769.   new.block
  770.   format.title "title" output.check
  771.   new.block
  772.   "Master's thesis" format.thesis.type output.nonnull
  773.   school "school" output.check
  774.   address output
  775.   format.date "year" output.check
  776.   new.block
  777.   note output
  778.   fin.entry
  779. }
  780.  
  781. FUNCTION {misc}
  782. { output.bibitem
  783.   format.authors output
  784.   title howpublished new.block.checkb
  785.   format.title output
  786.   howpublished new.block.checka
  787.   howpublished output
  788.   format.date output
  789.   new.block
  790.   note output
  791.   fin.entry
  792.   empty.misc.check
  793. }
  794.  
  795. FUNCTION {phdthesis}
  796. { output.bibitem
  797.   format.authors "author" output.check
  798.   new.block
  799.   format.btitle "title" output.check
  800.   new.block
  801.   "PhD thesis" format.thesis.type output.nonnull
  802.   school "school" output.check
  803.   address output
  804.   format.date "year" output.check
  805.   new.block
  806.   note output
  807.   fin.entry
  808. }
  809.  
  810. FUNCTION {proceedings}
  811. { output.bibitem
  812.   editor empty$
  813.     { organization output }
  814.     { format.editors output.nonnull }
  815.   if$
  816.   new.block
  817.   format.btitle "title" output.check
  818.   format.bvolume output
  819.   format.number.series output
  820.   address empty$
  821.     { editor empty$
  822.     { publisher new.sentence.checka }
  823.     { organization publisher new.sentence.checkb
  824.       organization output
  825.     }
  826.       if$
  827.       publisher output
  828.       format.date "year" output.check
  829.     }
  830.     { address output.nonnull
  831.       format.date "year" output.check
  832.       new.sentence
  833.       editor empty$
  834.     'skip$
  835.     { organization output }
  836.       if$
  837.       publisher output
  838.     }
  839.   if$
  840.   new.block
  841.   note output
  842.   fin.entry
  843. }
  844.  
  845. FUNCTION {techreport}
  846. { output.bibitem
  847.   format.authors "author" output.check
  848.   new.block
  849.   format.title "title" output.check
  850.   new.block
  851.   format.tr.number output.nonnull
  852.   institution "institution" output.check
  853.   address output
  854.   format.date "year" output.check
  855.   new.block
  856.   note output
  857.   fin.entry
  858. }
  859.  
  860. FUNCTION {unpublished}
  861. { output.bibitem
  862.   format.authors "author" output.check
  863.   new.block
  864.   format.title "title" output.check
  865.   new.block
  866.   note "note" output.check
  867.   format.date output
  868.   fin.entry
  869. }
  870.  
  871. FUNCTION {default.type} { misc }
  872.  
  873. MACRO {jan} {"Jan."}
  874.  
  875. MACRO {feb} {"Feb."}
  876.  
  877. MACRO {mar} {"Mar."}
  878.  
  879. MACRO {apr} {"Apr."}
  880.  
  881. MACRO {may} {"May"}
  882.  
  883. MACRO {jun} {"June"}
  884.  
  885. MACRO {jul} {"July"}
  886.  
  887. MACRO {aug} {"Aug."}
  888.  
  889. MACRO {sep} {"Sept."}
  890.  
  891. MACRO {oct} {"Oct."}
  892.  
  893. MACRO {nov} {"Nov."}
  894.  
  895. MACRO {dec} {"Dec."}
  896.  
  897. MACRO {acmcs} {"ACM Comput. Surv."}
  898.  
  899. MACRO {acta} {"Acta Inf."}
  900.  
  901. MACRO {cacm} {"Commun. ACM"}
  902.  
  903. MACRO {ibmjrd} {"IBM J. Res. Dev."}
  904.  
  905. MACRO {ibmsj} {"IBM Syst.~J."}
  906.  
  907. MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  908.  
  909. MACRO {ieeetc} {"IEEE Trans. Comput."}
  910.  
  911. MACRO {ieeetcad}
  912.  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  913.  
  914. MACRO {ipl} {"Inf. Process. Lett."}
  915.  
  916. MACRO {jacm} {"J.~ACM"}
  917.  
  918. MACRO {jcss} {"J.~Comput. Syst. Sci."}
  919.  
  920. MACRO {scp} {"Sci. Comput. Programming"}
  921.  
  922. MACRO {sicomp} {"SIAM J. Comput."}
  923.  
  924. MACRO {tocs} {"ACM Trans. Comput. Syst."}
  925.  
  926. MACRO {tods} {"ACM Trans. Database Syst."}
  927.  
  928. MACRO {tog} {"ACM Trans. Gr."}
  929.  
  930. MACRO {toms} {"ACM Trans. Math. Softw."}
  931.  
  932. MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  933.  
  934. MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  935.  
  936. MACRO {tcs} {"Theoretical Comput. Sci."}
  937.  
  938. MACRO {advp} {"Adv. Phys."}
  939. MACRO {ajp} {"Am. J. Phys."}
  940. MACRO {ao} {"Appl. Opt."}
  941. MACRO {apl} {"Appl. Phys. Lett."}
  942. MACRO {apj} {"Astrophys. J."}
  943. MACRO {baps} {"Bull. Am. Phys. Soc."}
  944. MACRO {cpc} {"Computer Phys. Comm."}
  945. MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"}
  946. MACRO {fed} {"Fusion Eng. Design"}
  947. MACRO {ft} {"Fusion Tech."}
  948. MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
  949. MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
  950. MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"}
  951. MACRO {ip} {"Infrared Phys."}
  952. MACRO {jap} {"J. Appl. Phys."}
  953. MACRO {jcp} {"J. Comput. Phys."}
  954. MACRO {jetp} {"Sov. Phys.-JETP"}
  955. MACRO {jfe} {"J. Fusion Energy"}
  956. MACRO {jfm} {"J. Fluid Mech."}
  957. MACRO {jgr} {"J. Geophys. Res."}
  958. MACRO {jmp} {"J. Math. Phys."}
  959. MACRO {jne} {"J. Nucl. Energy"}
  960. MACRO {jnec} {"J. Nucl. Energy, Part C"}
  961. MACRO {jnm} {"J. Nucl. Mater."}
  962. MACRO {josa} {"J. Opt. Soc. Am."}
  963. MACRO {jpp} {"J. Plasma Phys."}
  964. MACRO {jpsj} {"J. Phys. Soc. Jpn"}
  965. MACRO {jvst} {"J. Vac. Sci. Technol."}
  966. MACRO {nedf} {"Nucl. Eng. Design/Fusion"}
  967. MACRO {nf} {"Nucl. Fusion"}
  968. MACRO {nim} {"Nucl. Instrum. Methods"}
  969. MACRO {nimpr} {"Nucl. Instrum. Methods Phys. Research"}
  970. MACRO {nt/f} {"Nucl. Tech./Fusion"}
  971. MACRO {pf} {"Phys. Fluids"}
  972. MACRO {pfa} {"Phys. Fluids A"}
  973. MACRO {pfb} {"Phys. Fluids B"}
  974. MACRO {pl} {"Phys. Lett."}
  975. MACRO {pla} {"Phys. Lett. A"}
  976. MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
  977. MACRO {pp} {"Plasma Phys."}
  978. MACRO {ppcf} {"Plasma Phys. Controlled Fusion"}
  979. MACRO {prl} {"Phys. Rev. Lett."}
  980. MACRO {pr} {"Phys. Rev."}
  981. MACRO {pra} {"Phys. Rev. A"}
  982. MACRO {ps} {"Physica Scripta"}
  983. MACRO {rmp} {"Rev. Mod. Phys."}
  984. MACRO {rsi} {"Rev. Sci. Instrum."}
  985. MACRO {sjpp} {"Sov. J. Plasma Phys."}
  986. MACRO {spd} {"Sov. Phys.-Dokl."}
  987. MACRO {sptp} {"Sov. Phys.-Tech. Phys."}
  988. MACRO {spu} {"Sov. Phys.-Usp."}
  989.  
  990. READ
  991.  
  992. STRINGS { longest.label }
  993.  
  994. INTEGERS { number.label longest.label.width }
  995.  
  996. FUNCTION {initialize.longest.label}
  997. { "" 'longest.label :=
  998.   #1 'number.label :=
  999.   #0 'longest.label.width :=
  1000. }
  1001.  
  1002. FUNCTION {longest.label.pass}
  1003. { number.label int.to.str$ 'label :=
  1004.   number.label #1 + 'number.label :=
  1005.   label width$ longest.label.width >
  1006.     { label 'longest.label :=
  1007.       label width$ 'longest.label.width :=
  1008.     }
  1009.     'skip$
  1010.   if$
  1011. }
  1012.  
  1013. EXECUTE {initialize.longest.label}
  1014.  
  1015. ITERATE {longest.label.pass}
  1016.  
  1017. FUNCTION {begin.bib}
  1018. { preamble$ empty$
  1019.     'skip$
  1020.     { preamble$ write$ newline$ }
  1021.   if$
  1022.   "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  1023. }
  1024.  
  1025. EXECUTE {begin.bib}
  1026.  
  1027. EXECUTE {init.state.consts}
  1028.  
  1029. ITERATE {call.type$}
  1030.  
  1031. FUNCTION {end.bib}
  1032. { newline$
  1033.   "\end{thebibliography}" write$ newline$
  1034. }
  1035.  
  1036. EXECUTE {end.bib}
  1037.